package com.example.mapper;

import com.example.domian.Emp;
import com.example.page.EmpPageQuery;
import org.apache.ibatis.annotations.*;

import java.util.List;

//操作员工的Mapper接口
@Mapper
public interface EmpMapper {

    //修改员工
    void update(Emp emp);

    //删除员工
    @Delete("delete from emp where id = #{id}")
    void delete(Integer id);

    //根据id查询员工
    @Select("select * from emp where id = #{id}")
    Emp selectById(Integer id);

    //添加员工
    @Insert("insert into emp values (null,#{username},#{password},#{name},#{gender},#{image},#{job}" +
            ",#{entrydate},#{deptId},#{createTime},#{updateTime})")
    void insert(Emp emp);

    /**
     * 多条件查询总记录数
     * @param empPageQuery
     * @return
     */
    Long findCountByCondition(EmpPageQuery empPageQuery);

    /**
     * 多条件查询当前页面数据
     * @param empPageQuery
     * @return
     */
    List<Emp> findListByCondition(EmpPageQuery empPageQuery);

    /**
     * 为pageHelper插件，提供条件模糊查询all
     * @param empPageQuery
     * @return
     */
    List<Emp> findPageByCondition(EmpPageQuery empPageQuery);

    //根据id查询部门包含员工
    @Select("select * from emp where dept_id = #{deptId}")
    List<Emp> findByDeptId(Integer deptId);
}
